<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Parte_frm( $this );

	class Parte_frm extends Frm
	{
	function setValue ( $ncParte )
		{
			$cSql = "SELECT ncParte, cdParte, ncComputadora, ncModelo, ncEstadoParte, nqVelocidad, nqEspacio, nqTamano
								FROM atParte
								WHERE ncParte = $ncParte";
			$aRow = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aRow );
			return $aRow;
		}
	function Parte_frm( &$oModule )
		{
			$this->Frm( $oModule );
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncComputadora']	= new InputLookUp( "Computadora", "ncComputadora" );
			$this->aFields['ncParte']				= new Input( "Codigo", "ncParte", '', false, true );
			$this->aFields['cdParte']				= new InputText( "Serie", "cdParte" );
			$this->aFields['ncModelo']			= new InputLookup( "Modelo", "ncModelo" );
			$this->aFields['ncEstadoParte']	= new InputList( "Estado", "ncEstadoParte" );
			$this->aFields['nqVelocidad']		= new InputNumber( "Velocidad", "nqVelocidad" );
			$this->aFields['nqEspacio']			= new InputNumber( "Espacio", "nqEspacio" );
			$this->aFields['nqTamano']			= new InputNumber( "Tamano", "nqTamano" );
		}
	function setLevel( $nLevel)
		{
			switch ( $nLevel )
			{
				case 2:
					$ncTipoProducto = getParam('ncTipoProducto');
					if ( $ncTipoProducto )
					{
						$cSql = "SELECT bVelocidad, bEspacio, bTamano FROM acTipoProducto WHERE ncTipoProducto = $ncTipoProducto";
						list ( $bVelocidad, $bEspacio, $bTamano ) = $this->oDatabase->getArray($cSql);
					}
					$this->aInput = array( 'ncParte', 'ncModelo', 'cdParte', 'ncEstadoParte' , 'ncComputadora'  );
					if ( $bVelocidad ) $this->aInput[] = "nqVelocidad";
					if ( $bEspacio ) $this->aInput[] = "nqEspacio";
					if ( $bTamano ) $this->aInput[] = "nqTamano";
					break;
			}
		}
	function initializeForm()
		{
			// Configura el Titulo
			$this->setLabel( "Parte" );
			if ( $this->isRetrievable() &&  $this->aFields['ncParte']->getValue() )
			{
				$aRow = $this->setValue ( $this->aFields['ncParte']->getValue() );
			}
			return true;
		}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
				case 'ncParte':
					$oField->setHidden();
				break;
				case 'ncComputadora':
					if ( $oField->getValue() )
					{
						$oField->setHidden();
					} else
					{
						$oField->setForm( $this );
						initializeComputadora( $oField );
					}
				break;
				case 'cdParte':
					$oField->setLength(40);
				break;
				case 'ncEstadoParte':
					$cSql = "SELECT ncEstadoParte, cdEstadoParte FROM acEstadoParte";
					$oField->setMatrix ( $this->oDatabase->getMatrix( $cSql ) );
				break;
				case 'nqVelocidad':
				case 'nqTamano':
				case 'nqEspacio':
					$oField->setLength(8.2);
				break;
				case 'ncModelo':
					$oField->setForm( $this );
					initializeModelo( $oField , "ncTipoProducto=" . getParam('ncTipoProducto'), "ncTipoProducto=" . getParam('ncTipoProducto') );
				break;
			}
		}
	}
?>